#include <stdio.h>

int *my_add1(int x, int y){
	int sum = x + y;
	return &sum; // 不能返回局部变量的地址
}

int sum = 0;
int *my_add2(int x, int y){
	sum = x + y;
	return &sum; // 可以返回全局变量的地址
}

int *my_add3(int x, int y){
	static int sum = 0;
	sum = x + y;
	return &sum; // 可以返回static修饰的局部变量的地址
}

int main(int argc, const char *argv[])
{
	int a = 10;
	int b = 20;
	int *p = NULL;
	//p = my_add1(a, b);
	//printf("%d\n", *p); // 不可预知 
	
	p = my_add2(a, b);
	printf("%d\n", *p); // 30

	p = my_add3(a, b);
	printf("%d\n", *p); // 30


	return 0;
}
